<?php

//............分类 管理控制器...............
class CategoryController extends CommonController{	
	//保存到私有的变量属性
	private $_model;	
	//这个也是构造方法   
	//这样的话更能节省资源  不用来回都调用 
	public function __init(){
		//使用Category这个模型
		$this->_model = k('Category');		
	}

	//................显示分类..............
	public function index(){
		//获得所有分类数据
		//上面已经把CATEGORY 都已经 扩展开  调用就可以了
		//找到_model里的 get_all_data 方法就可以
		$this->assign('data',$this->_model->get_all_data());
		//显示模板
		$this->display();
	}	
	
	//..........添加顶级分类.............	
	public function add(){
		//判断是否post提交
		if(IS_POST){
//			p($_POST);
			//执行模型添加，在添加的动作之前，有自动验证
			//通过模型里数据里方法 判断验证 这个添加的数据 如果他不符合验证的规则
			if(!$this->_model->add_data()){
				//那就反出模型里的验证规则错误信息反出
				$this->error($this->_model->error);
			}
			//反之 就输出添加成功
			$this->success('添加成功');
		
			//显示模板		
		}
	$this->display();
}
	
	
	//.............添加子集分类..................
	public function add_son(){
		if(IS_POST){
			if(!$this->_model->add_data()) $this->error($this->_model->error);		
			$this->success('添加成功',U('index'));
		}
		//获得所属分类名称
		$data = $this->_model->get_one_data(array('cid'=>Q('get.cid', 0, 'intval')),'cname');
		$this->assign('cname',$data['cname']);
		//显示模板
		$this->display();
	}
	
	//...............ajax获得子集分类....................
		public function ajax_get_son(){
			//判断一下 在ajax 的规则下 不符合 就反出错误信息
			if(!IS_AJAX) $this->error('非法请求');
			//在把模板规则下正确的数据拿取出来的赋值给$sonID 
			$sonId = $this->_model->get_son_data(Q('post.cid',0,'intval'));
			//给js返回json数据
			$this->ajax($sonId);
		}
		
		//.............删除分类...........................	
		public function del_data(){
			//判断一下通过模板规则的GET过来的删除数据里的cid   如果不传就默认为0  intval
			if($this->_model->del_data(Q('get.cid',0,'intval'))){
				//符合就删除成功
				$this->success('删除成功',U('index'));
			}
			//否则就反出模板里规则中错误中的指出
			$this->error($this->_model->error);
		}
		
		//...............修改......................		
		public function edit(){
			//判断一下是否POST提交
			if(IS_POST){
				//执行模板里的修改方法规则   选中
				$this->_model->update_data(array('cid'=>Q('get.cid',0,'intval')));
			$this->success('修改成功',U('index'));
			}
			//get提交的CID 不传 默认为0 强制转整数
			$cid = Q('get.cid',0,'intval');
			//p($cid);
			//获得旧的数据
			//获取到数据  用模型中获取一句条的方法来获取数据中的cid 的值中的$cid 数据 中的 $cid 1
		    $oldData = $this->_model->get_one_data(array('cid'=>$cid));
			//p($oldData);
			//分配变量
			$this->assign('oldData',$oldData);			
			//获得可以更换选择的父级分类(排除自己和自己子集)
			//  获取到除了自己和子集之外的所有数据中的$CID 
			$cateData = $this->_model->get_change_cate($cid);
//			p($cateData);
			//分配变量
			$this->assign('cateData',$cateData);
			//显示模板
			$this->display();
		}
	
	
	
}
